import Commander

extension DragCommand: CommanderSignatureProviding {
    static func commanderSignature() -> CommandSignature {
        CommandSignature(
            options: [
                .commandOption(
                    "from",
                    help: "Starting element ID from session",
                    long: "from"
                ),
                .commandOption(
                    "fromCoords",
                    help: "Starting coordinates as 'x,y'",
                    long: "from-coords"
                ),
                .commandOption(
                    "to",
                    help: "Target element ID from session",
                    long: "to"
                ),
                .commandOption(
                    "toCoords",
                    help: "Target coordinates as 'x,y'",
                    long: "to-coords"
                ),
                .commandOption(
                    "toApp",
                    help: "Target application (e.g., 'Trash', 'Finder')",
                    long: "to-app"
                ),
                .commandOption(
                    "session",
                    help: "Session ID for element resolution",
                    long: "session"
                ),
                .commandOption(
                    "duration",
                    help: "Duration of drag in milliseconds",
                    long: "duration"
                ),
                .commandOption(
                    "steps",
                    help: "Number of intermediate steps",
                    long: "steps"
                ),
                .commandOption(
                    "modifiers",
                    help: "Modifier keys to hold during drag",
                    long: "modifiers"
                ),
                .commandOption(
                    "profile",
                    help: "Movement profile (linear or human)",
                    long: "profile"
                ),
            ],
            optionGroups: [
                FocusCommandOptions.commanderSignature(),
            ]
        )
    }
}
